It is valuable to a computer user to have complete and usable copies of the most recently accessed data files in the event of a primary disk failure. As used herein, the term “accessed” means created, modified, read, or written. Other user data may be backed up elsewhere, perhaps at home or in an office, but the most recently accessed files or most commonly accessed files are often the most important files to a user from a productivity perspective. While it is possible to recover these important files from an external backup copy, this may not be the best solution. For example, a recently accessed file may be modified or updated, and the modifications or updates may not be reflected in the backup copy. Another issue is time. It may take time to locate a backup device, such as an external hard drive or an external flash drive. Additionally, the backup copies may be located at a physically remote location. For example, if a user is travelling, but the backup is stored in his or her office, then the backup copy may not be accessible until the user returns to the office.
Hybrid disk drives (or other flash based disk performance enhancing systems) have flash based storage as well as rotating physical disk storage. One use of the flash storage is to cache the most frequently used disk blocks in order to provide faster access to files that are most often read from the disk. This can speed read access from the drive for files often read. This is particularly effective for system data such as those used often to boot a PC, applications frequently used or frequently accessed user data. Another use of the flash portion of a hybrid drive is to act as a write-through cache so writes to the disk occur opportunistically from the cache to the spinning media enhancing overall write performance of the system. These transactions are performed at a very low level to optimize performance. The cache/disk subsystem does not need to be aware of the grouping of the blocks into particular files, just the fact that a block has passed through the cache either recently or often. The subsystem keeps track of the association of the block in cache to the identical content block on the spinning disk but not association of which file contains that block. The grouping of multiple blocks into a file is maintained independently by the host operating system. In the event of the failure of the primary disk, this file level association is lost.
Part of the flash cache could also be used to store copies of user data that is often or recently used. This data could be extremely valuable to a user if the primary storage, such as a spinning magnetic disk, becomes inoperable. The read/write cache described above for performance enhancement may have a portion of this data, but may not have all the disk blocks that make up a given file. The blocks that pass through the cache are indicators of the files that are being accessed by the operating system. Many of these blocks are elements of user data files but may not be complete files. Also, a user data file could be opened for read or write access and only a single block read or written in which case the whole file did not pass through the performance cache.